# 函数的返回值
"""
函数的返回值：
        输入输出，广义的输入输出，不是从键盘输入，也不是向显示屏输出
    
    1. 一个函数中可以有多个 return 语句
    2. 执行到return 语句,函数就会立刻执行结束,回到调用位置
    3. 一个函数是可以一次返回多个返回值的,使用 , 来分割多个返回值
    4. 如果只想关注其中的部分返回值,可以使用 _ 来忽视不想要的返回值

"""


# 求 beg,end这个范围之间的整数和

# def calcSum(beg, end):
#     theSum = 0
#     for i in range(beg, end + 1):
#         theSum += i
#     print(theSum)
#
#
# calcSum(1, 100)


"""
改进之后的代码，在calcSum函数内部，只是进行了计算，
而把打印的逻辑放到了函数外面
calcSum把计算结果当做返回值，返回给“函数调用者”
第一个版本，即做了计算，又做了打印(和用户交互)
第二个版本，只是做了计算，不关心如何和用户交互
一但后续需要改变和用户交互的方式，第二种写法就更有优势(不必修改代码)
"""
# def calcSum(beg, end):
#     theSum = 0
#     for i in range(beg, end + 1):
#         theSum += i
#     return theSum
#
#
# a = calcSum(1, 100)
# print(a)


# 这种情况不算有多个 return 语句

#   1. 一个函数中可以有多个 return 语句
# def text():
#     return 0
#     return 2   #永远也执行不到该语句的

# 一般多个return语句是搭配分支语句 / 循环语句的

"""
用来判定num 是不是奇数! 如果是奇数就返回True,不是就返回False
num: 要判定的整数
返回True False 来表示是不是奇数
  

"""


# def isDdd(num):
#     if num % 2 == 0:
#         return False
#     else:
#         return True


"""
等价于 
    2. 执行到return 语句,函数就会立刻执行结束,回到调用位置

def isDdd(num):
    if num % 2 == 0:
        return False
    return True
    
    把returnTue 写到if外面,意味着条件是否满足,都会指向return False
    但是再仔细观察,就会发现条件满足之后,if 里面有一个 return了,一但条件满足
    是没有机会执行到return True
"""
# print(isDdd(12))
# print(isDdd(11))


"""
    3. 一个函数是可以一次返回多个返回值的,使用 , 来分割多个返回值
Python中的一个函数可以返回多个值,而C++想要返回多个值,可以通过输出型参数(指针/引用)
"""

# 写一个函数,返回平面上的一个点
# 横坐标,纵坐标


def getPoint():
    x = 10
    y = 10
    return x, y


a, b = getPoint()
print(a, b)

# 4.如果只想关注其中的部分返回值, 可以使用来忽视不想要的返回值

_, c = getPoint()
print(c)